/****************************************************************************
 *  QLyrics - A simple lyrics viewer.                                       *
 *  Copyright (C) 2008  hsys <hanshuiys@gmail.com>                          *
 *                                                                          *
 *  This program is free software; you can redistribute it and/or modify    *
 *  it under the terms of the GNU General Public License as published by    *
 *  the Free Software Foundation; either version 3 of the License, or       *
 *  (at your option) any later version.                                     *
 *                                                                          *
 *  This program is distributed in the hope that it will be useful,         *
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of          *
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           *
 *  GNU General Public License for more details.                            *
 *                                                                          *
 *  You should have received a copy of the GNU General Public License       *
 *  along with this program; if not, write to the Free Software Foundation, *
 *  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA       *
 ****************************************************************************/

#include "lyricsnormalpainter.h"
#include "configmanager.h"

static LyricsPainterManager::Register<LyricsNormalPainter> painter("Normal");

void LyricsNormalPainter::drawLyrics(QPainter& painter, LyricsTime time) {
    const LyricsData& lyrics = *m_lyrics;
    int px = lyrics.find(time);
    if (px < lyrics.size()) {
        int timeLength = (px + 1 < lyrics.size()) ? lyrics[px + 1].offset - lyrics[px].offset : 0;
        drawText(painter, 
            m_rect.left() + (m_rect.width() - m_fontMetrics->width(lyrics[px].lyrics)) / 2,
            m_rect.top() + (m_rect.height() - m_fontMetrics->height()) / 2 + m_fontMetrics->ascent(),
            getFadingColor(time - lyrics[px].offset, timeLength),
            lyrics[px].lyrics);
    };
};
